#ifndef __CREADER_CONST_H__
#define __CREADER_CONST_H__

#include "base_types.h"

/************************************************************************/
// Macro                                                                      
/************************************************************************/


/************************************************************************/
// Enum                                                                      
/************************************************************************/
//Output format
typedef enum
{
	CREADER_FORMAT_16K_16BIT_MONO_PCM = 1, //Defaulted value
	CREADER_FORMAT_8K_16BIT_MONO_PCM,
	CREADER_FORMAT_Mulaw, 
	CREADER_FORMAT_MAX
}CREADER_OUTPUT_FORMAT;


//Error Code
typedef enum
{
	CREADER_RET_START  = 1,
	CREADER_RET_OK	= 0,
	//Engine error
	CREADER_RET_PARAM_ERROR = -10,
	CREADER_RET_MEMORY_FAIL,
	CREADER_RET_FILE_ERROR,
	CREADER_RET_WAV_FMT_ERROR,
	CREADER_RET_DONE,
	CREADER_RET_NO_TTS,
	CREADER_RET_WAV_OUT_STOP,
	//SDK error
	CREADER_RET_FAIL_LOAD_UTILS_DLL = -501,
	CREADER_RET_FAIL_LOAD_TTS_DLL = -502,
	CREADER_RET_FAIL_GET_FP_FROM_TTS_DLL = -503,
	CREADER_RET_FAIL_LOAD_NLP_DLL = -504,
	CREADER_RET_FAIL_GET_FP_FROM_NLP_DLL = -505,
	CREADER_RET_CREATE_NLP_HANDLE = -506,
	CREADER_RET_FAIL_LOAD_PROSODY_BIN = -507,
	CREADER_RET_FAIL_LOAD_VOICE_BIN = -508,
	CREADER_RET_FAIL_LOAD_TTS_BIN = -509,
	CREADER_RET_CREATE_TTS_HANDLE = -510,
	CREADER_RET_FAIL_CREATE_LEXMGR_HANDLE = -511,
	CREADER_RET_FAIL_TTS_LANG_NOT_SUPPORT = -512,
	CREADER_RET_INVALID_TTS_INDEX = -513,
	CREADER_RET_API_NOT_SUPPORT = -514,
	CREADER_RET_FAIL_LOAD_NLP_BIN = -515,
	CREADER_RET_FAIL_LOAD_TN_BIN = -516,
	CREADER_RET_FAIL_ADD_LANG = -517,
	CREADER_RET_FAIL_ADD_VOICE = -518,
	CREADER_RET_EXCEED_MAX_PUNC_MARK_NUM = -519,
	CREADER_RET_FAIL_CREATE_ALPHA_DIGIT_PRERECORD_BUF = -520,
	CREADER_RET_FAIL_LOAD_LICENSE = -521,
	CREADER_RET_FAIL_SDK_NOT_SUPPORT = -522,
	CREADER_RET_FAIL_LANGUAGE_NOT_SUPPORT = -523,
	CREADER_RET_FAIL_EXCEED_MAX_HANDLE_NUM = -524,
	CREADER_RET_FAIL_LOAD_NDLP_BIN = -525,
	CREADER_RET_FAIL_ADD_DIALECT = -526,

	//CReaderPlayer Err
	CREADERPLAYER_RET_FAIL_IS_ALREADY_START = -601,
	CREADERPLAYER_RET_CREATE_THREAD_FAIL = -602,
	CREADERPLAYER_RET_CREATE_MUTEX_FAIL = -603,
	CREADERPLAYER_RET_STOP_FAIL_THREAD_DEADLOCK = -604,
	CREADERPLAYER_RET_NO_AUIDO_ITEM = -605,
	
	CREADER_RET_EXPIRED = -1000,
	CREADER_RET_LICENSE_FAILED = -1001,
	CREADER_RET_UNKNOW_ERR = -3000

} CREADER_STATUS;


typedef enum
{
	CREADER_TYPE_NORMAL = 0,
	CREADER_TYPE_NAME,
	CREADER_TYPE_TIME,
	CREADER_TYPE_DATE,
	CREADER_TYPE_WEEKDAY,
	CREADER_TYPE_ORDINAL,
	CREADER_TYPE_WORD,
	CREADER_TYPE_PROMPT,
	CREADER_TYPE_NUMBER,
	CREADER_TYPE_DIGIT,
	CREADER_TYPE_DIGIT2, // special pronunciation
	CREADER_TYPE_ALPHA_DIGHT_MODE,
	CREADER_TYPE_MAX

} CREADER_TYPE;


typedef enum
{
	CREADER_CB_WAV,
	CREADER_CB_TEXT,
	CREADER_CB_MAX

} CREADER_CALL_BACK_FLAG;

typedef enum
{
	CREADER_LANG_UNDEFINED = 0,
	CREADER_LANG_MANDARIN_TWN,		//	BSR_LANG_1
	CREADER_LANG_MANDARIN_CHN,		//	BSR_LANG_2
	CREADER_LANG_CANTONESE_HK,		//	BSR_LANG_3
	CREADER_LANG_ENGLISH_USA,		//	BSR_LANG_4
	CREADER_LANG_ENGLISH_UK,		//	BSR_LANG_5
	CREADER_LANG_GERMAN_GER,		//	BSR_LANG_6
	CREADER_LANG_SPANISH_SAM,		//	BSR_LANG_7
	CREADER_LANG_FRENCH_FRA,		//	BSR_LANG_8
	CREADER_LANG_ITALIAN_ITA,		//	BSR_LANG_9
	CREADER_LANG_KOREAN_KOR,		//	BSR_LANG_10
	CREADER_LANG_RUSSIAN_RUS,		//	BSR_LANG_11
	CREADER_LANG_PORTUGUESE_BRA,	//	BSR_LANG_12
	CREADER_LANG_ENGLISH_CHN,		//	BSR_LANG_13, Chinese-accent English. 2005/08/25
	CREADER_LANG_THAI_THA,			//	BSR_LANG_14
	CREADER_LANG_ARABIC_ARB,		//	BSR_LANG_15; not ready yet
	CREADER_LANG_DUTCH_NL,			//	BSR_LANG_16
	CREADER_LANG_JAPANESE_JP,		//	BSR_LANG_17
	CREADER_LANG_HINDI_IND,			//	BSR_LANG_18; 2010/11/22

	CREADER_LANG_POLISH_PL,			//	BSR_LANG_19
	CREADER_LANG_CZECH_CZ,			//	BSR_LANG_20
	CREADER_LANG_TURKISH_TUR,		//	BSR_LANG_21
	CREADER_LANG_DANISH_DEN,		//	BSR_LANG_22
	CREADER_LANG_SWEDISH_SWE,		//	BSR_LANG_23
	CREADER_LANG_NORWEGIAN_NOR,		//	BSR_LANG_24; Norwegian. 2007/11/15
	CREADER_LANG_FINNISH_FIN,		//	BSR_LANG_25; Finnish. 2007/10/12
	CREADER_LANG_GREEK_GRE,			//	BSR_LANG_26; Greek. 2007/11/15
	CREADER_LANG_PORTUGUESE_POR,	//	BSR_LANG_27
	CREADER_LANG_SLOVAK_SLO,		//	BSR_LANG_28; not ready yet
	CREADER_LANG_HUNGARIAN_HUN,		//	BSR_LANG_29; Hungarian. 2008/02/19
	CREADER_LANG_UKRAINIAN_UKR,		//	BSR_LANG_30; not ready yet
	CREADER_LANG_ENGLISH_AU,		//	BSR_LANG_31, Australian English. 2007/10/09
	CREADER_LANG_ENGLISH_WW,		//	BSR_LANG_32, Worldwide English. 2007/10/09
	CREADER_LANG_SPANISH_SPA,		//	BSR_LANG_33, Spanish (Euro)	2009/03/17
	CREADER_LANG_MINNAN_TW,			//	BSR_LANG_34, Taiwan Minnan.閩南語	2010/05/12  not ready yet
	CREADER_LANG_VIETNAMESE_VIE,	//	BSR_LANG_35, VIETNAM VIETNAMESE.    2010/11/11  not ready yet
	CREADER_LANG_ENGLISH_IND,		//	BSR_LANG_36, India-accent English.	2010/11/22
	CREADER_LANG_ENGLISH_SEA,		//	BSR_LANG_37, Southeast Asia accent English.	not ready yet
	CREADER_LANG_BAHASA_IDN,		//	BSR_LANG_38; Bahasa - Indonesia 2012/02/01
	CREADER_LANG_BAHASA_MAL,		//	BSR_LANG_39; Bahasa - Malaysia not ready yet
	CREADER_LANG_TAGALOG_PHI,		//	BSR_LANG_40; Tagalog - Philippines not ready yet
	CREADER_LANG_HAKKA_TW,			//	BSR_LANG_41; Taiwan - Hakka	2018/03/26
	CREADER_LANG_MAX				//	Max 2009/04/21
	
} CREADER_LANG_ID; //Last update: 2018/03/26

#endif // __CREADER_CONST_H__
